// 654. 简单[16进制无符号整型(long long)0x100000000L,
// (long long)0xffffffff80000000L]大小端整数
// https://oj.rnd.huawei.com/problems/654/details
//计算机中对整型数据的表示有两种方式：大端序和小端序，大端序的高位字节在低地址，小端序的高位字节在高地址。例如：对数字
// 65538，其4字节表示的大端序内容为00 01 00 02，小端序内容为02 00 01 00。
//现输入一个字符串表示的十进制整数（含负数），请分别输出以4字节表示的大端序和小端序：
//负数以补码形式表示。如果输入的整数的值超出 [-2^31, 2^32)
//范围，则输出字符串overflow。 输入
//十进制整数，以负号-开头表示负数，其它为正整数；数字长度范围：[1,32]。
//输入数字不含前导零。
//输出 大端序 + \n + 小端序；或字符串overflow。
//大端序和小端序的输出格式：每个字节以两位16进制数字表示（16进制数中A-F要大写），字节之间以单空格分隔。
//输入 -10
//输出
// FF FF FF F6
// F6 FF FF FF
//含负号表示为负整数。
//该负整数的补码表示为 FF FF FF F6，其对应大端序和小端序内容分别为FF FF FF F6 和
// F6 FF FF FF。 按输出格式要求输出其大端序和小端序内容，中间加换行符。 输入
// 4027691818 输出 F0 11 B3 2A 2A B3 11 F0 输入 4027691818
//为正整数，按输出格式要求输出其大端序和小端序内容，中间加换行符。 输入
// 1234567890123456789012345678900 输出 overflow 输入数字超过[-2^31, 2^32)
//范围，因此输出 overflow

#include <math.h>

#include <algorithm>
#include <iostream>
#include <string>
#include <utility>
using namespace std;

class Solution {
 public:
  // 待实现函数，在此函数中填入答题代码;
  string GetHexString(long long input) {
    // printf("%llx\n", (long long)pow(2, 32));
    // 4027691818   = 0x100000000
    // 2147483648   = 0x10000000
    if (input >= (long long)0x100000000L ||
        input < (long long)0xffffffff80000000L)
      return "overflow";
    string result;
    char out[64] = {0};
    sprintf(out, "%02X %02X %02X %02X\n%02X %02X %02X %02X\n",
            (input >> 24) & 0xff, (input >> 16) & 0xff, (input >> 8) & 0xff,
            (input >> 0) & 0xff, (input >> 0) & 0xff, (input >> 8) & 0xff,
            (input >> 16) & 0xff, (input >> 24) & 0xff);
    result = out;
    return result;
  }
};

int main() {
  long long input;
  cin >> input;

  Solution solu;
  string result = solu.GetHexString(input);
  cout << result;
  return 0;
}
